XDL ImageView 활용 다섯 번째

NXImageView를 활용하여 세계지도와 같은 영상을 배경맵으로 도시하고 그 위에 GeoTIFF 영상을 중첩하는 기능을 구현합니다.

들어가기 전에

본 튜터리얼을 공부하기 전에 먼저 "XDL ImageView 활용 네 번째”를 먼저 선행하시기 바랍니다.

1 예제 프로그램 만들기
1.1 "XDL_ImageView5" 이름으로 “Windows Forms 앱(.NET Framework)” 프로젝트를 생성한다.

자세한 설명은 "영상도시 툴 만들기 1"의 1. 예제 프로그램 만들기를 참고하기 바란다.


1.2 [도구상자]의 [항목선택]에 NXImage의 컨트롤을 추가한다.

영상도시 툴 만들기 1의 1.4 [도구상자]의 [항목선택] 부분을 참고하기 바란다.


1.3 “NXDL.dll”, “NXDLcc.dll”, “NXDLgr.dll”, “NXDLio.dll”, “NXDLrs.dll, “NXImage.dll” 파일을 참조 추가한다.

자세한 설명은 "영상도시 툴 만들기 1"의 1.5 참조추가 이후를 참고하기 바란다.

2 Config 파일 설정하기
2.1 윈도우 탐색기를 실행하여 “C:\Pixoneer\XDL3.0\Config\XImageBase.xml”파일을 메모장으로 연다.
2.2 <FILE>경로를 아래와 같이 “C:\Pixoneer\XDL3.0\Resource\world.xdm”으로 변경한다.
3 메뉴에 배경맵 Show/Hide기능 넣기
3.2 Form1 생성자에서 NXImageView 의 배경 맵의 경로를 지정한다.

C#

                                    
public Form1()
{
    InitializeComponent();

    String StrError;
    m_RasterIO = new XRasterIO();   // 객체 생성
    if (m_RasterIO.Initialize(out StrError) == false) // 영상 입출력 객체 초기화
    {
        MessageBox.Show(StrError);
    }

    nxImageLayerComposites1.LayerVisible = true; // 영상레이어를 보이도록 속성을 변경

    if(!nxImageView1.SetBackgroundMap("C:\\Pixoneer\\XDL3.0\\Config\\XImageBase.xml")) // 배경 맵의 경로를 지정한다.
    {
	    MessageBox.Show("배경맵이 설정되지 않았습니다."); 
    }
}
                                    
                                

3.3 [View]-[Show Background]와 [View]-[Hide Background]를 더블클릭하여 자동함수를 생성한다.

C#

                                    
private void showBackgroundToolStripMenuItem_Click(object sender, EventArgs e)
{
    nxImageView1.BackgroundMapVisible = true;
}
                                    
                                

C#

                                    
private void hideBackgroundToolStripMenuItem_Click(object sender, EventArgs e)
{
    nxImageView1.BackgroundMapVisible = false;
}
                                    
                                


1 예제 프로그램 만들기
1.1 "XDL_ImageView5" 이름으로 “WPF 앱(.NET Framework)” 프로젝트를 생성한다.

자세한 설명은 "영상도시 툴 만들기 1"의 1. 예제 프로그램 만들기를 참고하기 바란다.


1.2 프로젝트에 “NXDL.dll”, “NXDLio.dll”, “NXDLrs.dll”, “NXImage.dll” 파일을 참조추가한다.

자세한 설명은 "영상도시 툴 만들기 1"의 1.5 참조추가 이후를 참고하기 바란다.


1.3 ImageView 컨트롤을 활용하기 위해 MainWindow.xaml 창에서 namespace를 다음과 같이 추가한다.

자세한 설명은 "영상도시 툴 만들기 1"의 1.7 항목을 참고하기 바란다.

2 Config 파일 설정하기
2.1 윈도우 탐색기를 실행하여 “C:\Pixoneer\XDL3.0\Config\XImageBase.xml”파일을 메모장으로 연다.
2.2 <FILE>경로를 아래와 같이 “C:\Pixoneer\XDL3.0\Resource\World.xdm”으로 변경한다.
3 메뉴에 배경맵 Show/Hide기능 넣기
3.1 XAML창에서 아래의 표를 참고하여 [View]-[Show Background]와 [View]-[Hide Background] 메뉴를 생성한다.
Control type Header Name
MenuItem _View
MenuItem _Show Background showBackgroundViewMenuItem
MenuItem _Hide Background hideBackgroundViewMenuItem

아래와 같은 XAML 코드가 생성됨을 확인할 수 있다.

XAML

                                    
<Menu Grid.Row="0">
    <MenuItem Header="_File" Margin="5,5,0,0">
       <MenuItem x:Name="openFileMenuItem" Header="_Open" />
    </MenuItem>
    <MenuItem Header="_View" Margin="5,5,0,0">
        <MenuItem x:Name="showBackgroundViewMenuItem" Header="_Show Background"/>
        <MenuItem x:Name="hideBackgroundViewMenuItem" Header="_Hide Background"/>
    </MenuItem>
</Menu>
                                    
                                

3.2 [View]-[Show Background]와 [View]-[Hide Background]를 더블클릭하여 자동함수를 생성한다.

C#

                                    
private void showBackgroundViewMenuItem_Click(object sender, RoutedEventArgs e)
{
    nxImageView1.BackgroundImageVisible = true;
}
                                    
                                

C#

                                    
private void hideBackgroundViewMenuItem_Click(object sender, RoutedEventArgs e)
{
    nxImageView1.BackgroundImageVisible = false;
}
                                    
                                

3.3 [F5] 키를 눌러 프로그램을 실행한다.

3.4 [File]-[Open]을 통해 샘플데이터인 Korea_sub.tif 파일을 연다.

3.5 [View]-[Show Background], [View]-[Hide Background]를 눌러 배경맵이 Show/Hide됨을 확인한다.